package dssd.seguridad;

import java.util.ArrayList;
import java.util.List;

import dssd.constantes.Constantes;
import dssd.modelo.Solicitud;

public class Usuario {
	
	private Long id;
	private String usuario;
	private String password;
	private List<Rol> roles;
	
	public Usuario (String usuario, String password){
		super();
		this.usuario = usuario;
		this.password = password;
		this.roles = new ArrayList<Rol>();
	}
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getUsuario() {
		return usuario;
	}
	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public void setRoles(List<Rol> roles) {
		this.roles = roles;
	}
	public List<Rol> getRoles() {
		return roles;
	}
	public void agregarRol(Rol rol) {
		this.getRoles().add(rol);
	}
	public int cantRolesDistintosDeAdministrativo(){
		int cantRoles=this.getRoles().size();
		if(cantRoles==1){
			if(this.getRoles().get(0).getRolName().equalsIgnoreCase(Constantes.ADMINISTRATIVO)){
				return 0;
			}else{
				return 1;
			}
		}else{
			if(cantRoles==2){
				if(this.getRoles().get(0).getRolName().equalsIgnoreCase(Constantes.ADMINISTRATIVO)||(this.getRoles().get(1).getRolName().equalsIgnoreCase(Constantes.ADMINISTRATIVO))){
					return 1;
				}else{
					return 2;
				}
			}
			return 2;
		}
	}
	public boolean estaRegistradoComoUsuario(String tipoUsuario){
		List<Rol> roles=this.getRoles();
		for(Rol rol:roles){
			if(rol.getRolName().equalsIgnoreCase(tipoUsuario)){
				return true;
			}
		}
		return false;
	}
	public Usuario(){}

}
